1. Field of the Invention
The present invention relates to an information processing apparatus, a method of controlling the same, and a storage medium, and particularly to a technique of illuminating computation for 3D scene rendering.
2. Description of the Related Art
3-Dimensional Computer Graphics is used as a visualization expression method in various fields not limited to games and movies. In the technical field of this kind of 3DCG generation, in recent years, various methods have been proposed for more realistic depiction or for high quality rendering expression.
As a method of expression for making more realistic depiction in 3DCG, the method of reflecting effects due to Global Illumination exists. In this method, for one rendering object, by not only rendering shading that occurs directly based on defined illumination (a light source), but also rendering shading considering indirect illumination that appears due to the light emitted from a light source being reflected by another rendering object, a rendering expression having more realism can be provided.
On the other hand, because processing for Global Illumination employs such things as a ray tracing method, which traces the propagation of a light ray, which is complicated, in general it is known that the amount of calculation is large. A variety of optimization methods have been proposed for using this kind of Global Illumination in situations in which real-time screen rendering is required such as games. One optimization method is so called Deferred Rendering (Japanese Patent No. 5,155,462, or Oles Shishkovtsov, “Deferred Shading in S.T.A.L.K.E.R.” of GPU Gems 2, Addison-Wesley, 2005, pp. 143-166). In this method, rather than rendering while executing an illuminating computation for each of a plurality of objects included in a rendering scope, rendering of the geometry (G-Buffers) used for the illuminating computation for the entire rendering scope is performed without performing the illuminating computation by the rendering processing of a preceding stage. Then, by rendering a final output screen by executing the rendering processing of a subsequent stage after performing only the necessary illuminating computation on the final output screen using this geometry, and screen generation is performed efficiently without unnecessary illuminating computation.
Also, in recent years, accompanying an increase in resolution of display apparatuses (an increase in pixels in display areas), it has become desirable for home-use game consoles, for example, to have the capability to render screens corresponding to the number of pixels of display apparatuses in real-time. In other words, because the amount of calculation of processing for Global Illumination is proportional to the number of pixels of the screen to be rendered, time required for the rendering processing increases as the number of pixels becomes larger. In Robert Herzog et al., “Spatio-temporal upsampling on the gpu”, Proc. i3D 2010: ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, 2011, p. 91-98, a method for optimizing rendering processing by reducing an amount of calculation by calculating Global Illumination at a resolution less than the final output screen, and after that interpolating needed pixels in upsampling processing is proposed.
In a case of upsampling the results of Global Illumination calculation (an indirect illumination buffer) performed at a low resolution, as in Herzog, values of the pixels (interpolation pixels) generated by the interpolation are calculated by weighted addition to the pixels in the surroundings of the calculation results (surrounding pixels) is the in accordance with                depth values of objects rendered in the surrounding pixels        normal vectors of object surfaces rendered in the surrounding pixels        the distance between the surrounding pixels and the interpolation pixels        the time period at which the surrounding pixels were sampled.        
In deferred rendering, an indirect illumination buffer is generated based on information of G-Buffers before the rendering processing of a subsequent stage is performed. Specifically, the indirect illumination buffer for diffuse reflection or specular reflection is generated by calculating Global Illumination considering a normal output as a G-Buffer or information of a reflection parameter such as a Phong exponent, for example. In Herzog, an indirect illumination buffer used for a final output screen is generated by increasing resolution based on the above described weighting parameters after these indirect illumination buffers are generated at a low resolution.
However, because, unlike a diffuse reflection for which the reflection direction is defined in accordance with a normal vector, for a specular reflection, the reflection direction changes in accordance with the eye direction, a specular reflection could not be reproduced suitably with the above described weighting parameters.